Flash memories are popular memory storage devices because they store information in the absence of continuous power and are capable of being constructed in very compact form. Flash memory is typically constructed by fabricating a plurality of floating-gate transistors in a silicon substrate. A floating-gate transistor is capable of storing electrical charge on a separate gate electrode known as a floating gate that is separated by a thin dielectric layer from a control-gate electrode. Generally speaking, information is stored in a non-volatile memory device by the storage of an electrical charge in the floating gate.
Flash memory are in the form of a memory array that includes rows and columns of flash transistors, with each transistor being referred to as a memory cell that includes a control gate, a drain and a source. The memory cells within the memory array are programmed, erased and read by applying a predetermined voltage to the respective control gate, drain and source of the memory cells within a sector. As known in the art, the memory array is sub-divided into sectors containing rows and columns of memory cells.
Flash memory may be used to store various types of information that can generally be divided into two categories, code and data. Code corresponds to program code that is used to execute various operations in the flash memory. Data generally corresponds to fields of data that changes more frequently than code. Because code rarely, if ever, changes in the lifetime of some devices, it is desirable to have the ability to write protect the sectors that store code, while leaving some sectors unprotected. Providing a write protect function allows manufacturers to ensure that data does not mistakenly get written into a sector that is designated for code.
The write protect function is provided by the use of a type of data storage device known in the art as a content addressable memory cell or CAM cell. The CAM cell is a form of transistor that includes a control gate, a drain and a source that are typically electrically connected with a gate line, a bitline and a source line respectively. A write protect CAM is programmed by a user to designate that a particular sector in the flash memory is already programmed with code and that no data should be written to that sector.
To program the write protect CAM associated with previously programmed sectors, the user enters a programming mode that applies predetermined voltages to the bitline, the gate line and the source line of the particular CAM cell associated with that sector. During the programming of the write protect CAM, the voltage on the control gates (gate line) of the write protect CAMS is raised to a predetermined voltage level. When programming is complete, the predetermined voltage is no longer applied but some magnitude of voltage may still be applied to the control gates of the prior art write protect CAMS.
As known in the art, the duration and/or magnitude of voltage applied to the control gate of the CAM cell following programming may stress the CAM cell and disturb the data programmed into the CAM cell. If the data in the write protect CAMS is disturbed, single bit charge loss may occur and the programmed designation of write protection of the sectors in the flash memory can become unreliable. As a result, a sector containing code data that is not to be overwritten, may improperly become designated as not write protected, thereby allowing the user to overwrite the code data.
To that end, a need exists for a flash memory that is capable of programming writ protect CAMS to designate predetermined sectors as write protected that will only apply programming voltages to the control gate of the write protect CAMS during the programming mode.